The present invention relates in general to the field of computers and similar technologies, and in particular to software utilized in this field.
Graphical User Interfaces (GUIs) can use drawing surfaces to render information to the user. This information may itself be part of an underlying model of data, such as a set of nodes and arcs, or the information may be a software tool that uses shapes to show a runtime representation of a data model of underlying objects. For example, a display 100, shown in FIG. 1a, depicts a deployed FIG. 102 (which includes a text field 104a for inputting “name” data, a text field 104b for inputting “password” data, a text field 104c for inputting “email” name data, etc.) and underlying software objects 106a-b. Logical relationships exist between text fields 104a-e and specific software objects 106a-b. Part of the application's usage might involve illustrating a set of such relationships to the user.
One way to illustrate such relationships is to draw lines between the related figures. For example, consider lines 108 shown in FIG. 1b. As depicted, there is a relationship (e.g., dependency) between text fields 104b, 104d, 104e and software object 106a. Similarly, there is a relationship between text fields 104a, 104c and software object 106b. While this written description of these relationships may be confusing and difficult to follow, FIG. 1b is not much better due to the numerous and cluttering lines 108.
There may be simple situations in which FIG. 1b can be cleaned up by rearranging the shapes so the lines are more visually spread out, such that a flow in a pattern is easier to analyze and a user can move and bend the lines for clarity. However, with more than a few objects 106 and text fields 104, this rapidly becomes infeasible. Furthermore, arbitrarily moving lines 108, objects 106 and text field 104 just for the sake of visual uncluttering may lead to a problem of inadvertently changing the semantic meaning of the application. An example is a modeling tool in which locations of the text fields 104 represent runtime locations. Thus, the location of these text fields 104 cannot be moved merely to simplify the flow of the lines, as this would interfere with the desired runtime composition, which is the application's primary purpose.